/* Copyright 2011 Elektrobit Wireless Communications Oy (EB)


  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 2 as 
  published by the Free Software Foundation.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License along
  with this program; if not, write to the Free Software Foundation, Inc.,
  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


 *All rights reserved 
 *Version:Elektrobit_Qt_1.0.0_20110305 */


#include "pageview.h"
#include <servicemanager.h>
#include <common.h>
#include <QFile>
#include "page.h"
#include <QDeclarativeView>
#include <appcommon.h>
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeContext>
#include <QtDeclarative/QDeclarativeEngine>
#include <QApplication>

PageView::PageView(QWidget *parent) : QWidget(parent) {
    mPage = NULL;
    qmlView = NULL;
}

PageView::PageView(const PageView &pageView) : QWidget(pageView.parentWidget()) {
    
}

void PageView::setPage(Page *page) {
    mPage = page;
}

void PageView::touch(const QString &type, const QHash<QString, QString> *args) {
    if(mPage != NULL) {
        mPage->onTouch(type, args);
    }
}

void PageView::reloadCss() {
//    INFO << "load css file" <<SYSFILE(mCssFile);
    QFile cssFile(SYSFILE(mCssFile));
    if(cssFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
        this->setStyleSheet(QString(cssFile.readAll()));
    }
}


void PageView::init(void) {
    qmlView = new QDeclarativeView(this);
    qmlView->setBackgroundBrush(QBrush("black"));
//    APPINFO << qmlView;
}

void PageView::showViewUseQml(QObject *object) {
    qmlView->engine()->rootContext()->setContextObject(object);
    qmlView->setSource(QString(SYSFILE(this->mQmlFile)));
}







// canvas.engine()->rootContext()->setContextObject(game);
